<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class User extends CI_Controller {

    function User() {
        parent::__construct();
    }

    public function index() {
        if ($this->session->userdata('username')) {
            redirect("host");
        } else {
            redirect("login");
        }
    }

    public function ip() {
        
    }

    public function login() {
        if ($this->session->userdata('username')) {
            redirect("/");
        } else {
            $data_view["titulo"] = "Login";
            $data_view["login"] = "";
            $data_view['rdr'] = $this->input->get('rdr');
            $data_view["errormsg"] = "";

            if ($this->input->post('login')) {
                $user = $this->user_model->login($this->input->post('login'));

                $data_view["login"] = $this->input->post('login');

                if ($user) {
                    if ($user->password == md5($this->input->post('login') . $this->input->post('password'))) {
//                        $this->session->set_userdata('login', $user->login);
//                        $this->session->set_userdata('loginid', $user->id);
                        $data = array(
                            'username' => $user->login,
                            'login' => $user->login,
                            'loginid' => $user->id,
                            'logged' => true
                        );
                        $this->session->set_userdata($data);

                        redirect("/host");
                    } else {
                        $data_view["errormsg"] = "Senha ou Usuário não conferem";
                    }
                } else {
                    $data_view["errormsg"] = "Usuário não encontrado";
                }
            }

            $data_view["CI"] = $this;


            $this->template_model->setview('user/login');
            $this->template_model->setviewdata($data_view);

            $this->template_model->load();
        }
    }

    public function logout() {
        $this->session->sess_destroy();
        redirect("/");
    }

    public function signup() {
        $this->session->sess_destroy();
        $data_view = array();
        $data_view["errormsg"] = "";
        $data_view["login"] = "";
        $data_view["name"] = "";
        $data_view["email"] = "";


        if ($this->input->post()) {
            $error = false;

            if ($this->input->post('name')) {
                $data_view["name"] = $this->input->post('name');
            } else {
                $error = true;
                $data_view["errormsg"] .= "Nome é obrigatório<br>\n";
            }
            if ($this->input->post('email')) {
                $data_view["email"] = $this->input->post('email');
            } else {
                $error = true;
                $data_view["errormsg"] .= "eMail é obrigatório<br>\n";
            }
            if ($this->input->post('login')) {
                $data_view["login"] = $this->input->post('login');
            } else {
                $error = true;
                $data_view["errormsg"] .= "Login é obrigatório<br>\n";
            }
            if ($this->input->post('password')) {
                $password = $this->input->post('password');
            } else {
                $error = true;
                $data_view["errormsg"] .= "Senha é obrigatória<br>\n";
            }
            if ($this->input->post('passwordconf')) {
                $passwordconf = $this->input->post('passwordconf');
            } else {
                $error = true;
                $data_view["errormsg"] .= "Confirmação de senha obrigatória<br>\n";
            }

            /*
             * Recaptcha
             */
            $recaptcha_response = $this->input->post('g-recaptcha-response');
            $recaptcha_secret = '6LfeVAETAAAAAANXNy48lvjX8sie0hE6-d-_UgR9';
            $remoteip = $_SERVER['REMOTE_ADDR'];
            $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response . '&remoteip=' . $remoteip);
            $jsonreponse = json_decode($response);

            if ($jsonreponse->success) {
                
            } else {
                $error = true;
                $data_view["errormsg"] .= "Erro no capcha<br>\n";
            }

            if (!$error) {
                if ($passwordconf != $password) {
                    $error = true;
                    $data_view["errormsg"] .='Senhas não conferem' . "\n";
                }
            }

            if (!$error) {
                $user = new User_model();
                $user->login = $data_view["login"];
                $user->name = $data_view["name"];
                $user->password = md5($user->login . $password);
                $user->token = $token = uniqid(mt_rand(), true);
                if ($user->add()) {
                    $this->template_model->setview('user/signup_success');
                    $this->template_model->setviewdata($data_view);

                    /*
                     * Enviar email com o link de ativação http://ddns.egsf.tk/user/confirm/$token
                     */
                } else {

                    $data_view["errormsg"] .='Erro na inserção confira os dados novamente!' . "\n";
                    $this->template_model->setview('user/signup');
                    $this->template_model->setviewdata($data_view);
                }
            } else {
                $this->template_model->setview('user/signup');
                $this->template_model->setviewdata($data_view);
            }
        } else {
            $this->template_model->setview('user/signup');
            $this->template_model->setviewdata($data_view);
        }
        $this->template_model->load();
    }

    public function mydata() {
        if ($this->session->userdata('username')) {
            $this->template_model->setview('user/data');
            $this->template_model->load();
        } else {
            redirect("login");
        }
    }

    public function enter() {
        
    }

    public function confirm() {
        $token = $this->uri->segment(3);
        echo $token;

        $this->user_model->activate($token);
    }

}
